﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using ESRI.ArcGIS.Geodatabase;
namespace DIWAGIS.Class
{
    public static class clsStaticFunctions
    {
        public static void ThemMoiThanhCong(string strLopDoiTuong)
        {
            MessageBox.Show("Thêm mới " + string.Format("{0}", strLopDoiTuong) + " thành công", "Thông báo", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
        }

        public static void CapNhatThanhCong(string strTenDoiTuong)
        {
            MessageBox.Show("Cập nhật " + string.Format("{0}", strTenDoiTuong) + " thành công", "Thông báo", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
        }

        public static void XoaThanhCong(string strLopDoiTuong)
        {
            MessageBox.Show("Xóa " + string.Format("{0}", strLopDoiTuong) + " thành công", "Thông báo", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
        }

        public static void CanhBao(string strCanhBao)
        {
            MessageBox.Show(strCanhBao, "Cảnh báo", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
        }

        public static void ThongBaoLoi(Exception ex)
        {
            var st = new StackTrace(ex, true);
            // Get the top stack frame
            var frame = st.GetFrame(0);
            // Get the line number from the stack frame
            var line = frame.GetFileLineNumber();
            MessageBox.Show("Có lỗi xảy ra:\n" + ex.Message + "\nErrorLine: " + line, "Thông báo lỗi", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
        }

        public static void ThongBaoLoiStr(string strThongBaoLoi)
        {
            MessageBox.Show("Có lỗi xảy ra:\n" + strThongBaoLoi, "Thông báo lỗi", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
        }

        public static void LuuDuLieu()
        {
            MessageBox.Show("Bạn có muốn lưu lại dữ liệu?", "Thông báo", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question);
        }

        public static void XuatDuLieuThanhCong()
        {
           MessageBox.Show("Xuất dữ liệu thành công", "Thông báo", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
        }

        public static void ThongBaoChon(string strThongBao)
        {
            MessageBox.Show(strThongBao, "Thông báo", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
        }

        public static void CanhBaoXoa(string strThongBao)
        {
           MessageBox.Show(strThongBao, "Xác nhận xóa", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question);
        }

        /// <summary>
        /// Hiển thị số thứ tự trên grid view
        /// </summary>
        /// <param name="e"></param>
        //public static void ShowIndicator(DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        //{

        //    if (e.Info.IsRowIndicator & e.RowHandle >= 0)
        //    {
        //        e.Info.DisplayText = (e.RowHandle + 1).ToString();
        //        e.Info.ImageIndex = -1;
        //    }
        //}

        /// <summary>
        /// Kiểm tra xem form đã được mở hay chưa
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        //public static bool CheckIfFormShown(DevExpress.XtraEditors.XtraForm DevExpressForm)
        //{
        //    foreach (DevExpress.XtraEditors.XtraForm item in Application.OpenForms)
        //    {
        //        if (item.Name == DevExpressForm.Name)
        //        {
        //            return true;
        //        }
        //    }
        //    return false;
        //}

        /// <summary>
        /// Lấy Name từ Code
        /// </summary>
        /// <param name="code"></param>
        /// <param name="domain"></param>
        /// <returns></returns>
        /// 
        public static object GetNameFromCode(string code, IDomain domain)
        {
            string Name = string.Empty;
            if (domain.Type == esriDomainType.esriDTCodedValue)
            {
                ICodedValueDomain CodeDomain = domain as ICodedValueDomain;
                for (int i = 0; i < CodeDomain.CodeCount; i++)
                {
                    string pCode = CodeDomain.get_Value(i).ToString();
                    if (pCode == code)
                    {
                        Name = CodeDomain.get_Name(i);
                        break;
                    }
                }
            }
            return Name;
        }
    }
}
